/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.eventos.beans;

import java.util.List;
import org.cip.esymons.eventos.bc.AsistenciaDelegate;
import org.cip.esymons.eventos.be.AsistenciaParticipante;
import java.util.ArrayList;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import org.cip.esymons.eventos.bc.PreEventoDelegate;
import org.cip.esymons.eventos.be.Preevento;
import org.cip.esymons.general.util.ControladorAbstracto;

/**
 *
 * @author lizardor
 */
public class AsistenciaParticipanteController {

    AsistenciaDelegate delegadoAsistenciaParticipante;
    AsistenciaParticipante asistenciaParticipante;
    List<AsistenciaParticipante> listaAsistenciaParticipantes;
    Integer eveCodigo=1;
    
    public AsistenciaParticipanteController() {
        inicializar();
    }

    public void inicializar() {
        asistenciaParticipante = new AsistenciaParticipante();
        listaAsistenciaParticipantes = new ArrayList<AsistenciaParticipante>();
        delegadoAsistenciaParticipante = new AsistenciaDelegate();
        eveCodigo=1;
        getListaAsistenciaParticipantes();
    }

    //<editor-fold defaultstate="collapsed" desc="Gets y Sets">
    public AsistenciaParticipante getAsistenciaParticipante() {
        return asistenciaParticipante;
    }

    public void setAsistenciaParticipante(AsistenciaParticipante asistenciaParticipante) {
        this.asistenciaParticipante = asistenciaParticipante;
    }

    public List<AsistenciaParticipante> getListaAsistenciaParticipantes() {
        listarAsistenciaParticipante();
        return listaAsistenciaParticipantes;
    }

    public void setListaAsistenciaParticipantes(List<AsistenciaParticipante> listaAsistenciaParticipantes) {
        this.listaAsistenciaParticipantes = listaAsistenciaParticipantes;
    }

    public AsistenciaDelegate getDelegadoAsistenciaParticipante() {
        return delegadoAsistenciaParticipante;
    }

    public void setDelegadoAsistenciaParticipante(AsistenciaDelegate delegadoAsistenciaParticipante) {
        this.delegadoAsistenciaParticipante = delegadoAsistenciaParticipante;
    }

    public Integer getEveCodigo() {
        return eveCodigo;
    }

    public void setEveCodigo(Integer eveCodigo) {
        this.eveCodigo = eveCodigo;
    }

    // // </editor-fold>

    public String listarAsistenciaParticipante() {
        try {
            eveCodigo = (eveCodigo != null) ? eveCodigo : 0;
            listaAsistenciaParticipantes = new ArrayList<AsistenciaParticipante>();
            listaAsistenciaParticipantes = delegadoAsistenciaParticipante.listaAsistenciaParticipante3(eveCodigo);
        } catch (Exception ex) {
            mostrarMensaje("ERROR: ", "En listar las asistencias de los participantes", FacesMessage.SEVERITY_ERROR);
            System.out.println("FATAL: " + ex.getMessage());
        }
        return null;
    }

    public String eliminarAsistencia() {
        try {
//            asistenciaParticipante.setAspEstado(false);
//            delegadoAsistenciaParticipante.actualizar(asistenciaParticipante);
            delegadoAsistenciaParticipante.eliminar(asistenciaParticipante);
        } catch (Exception ex) {
            mostrarMensaje("Error", "No se puede eliminar la asistencia del participante", FacesMessage.SEVERITY_ERROR);
            System.out.println("FATAL: " + ex.getMessage());
        }
        inicializar();
        return null;
    }

    //combos
    public SelectItem[] getComboEventos2() {
        try {
            System.out.println("Ingreso 1");
            SelectItem[] selects = null;
            PreEventoDelegate delegadoPreevento = new PreEventoDelegate();
            List<Preevento> listaEvento = delegadoPreevento.listaEventos();

            selects = new SelectItem[listaEvento.size()];
            int cont = 0;
            boolean ban = true;
            for (Preevento preevento : listaEvento) {
                if (ban) {
                    preevento.setNroCaracteres(35);
                    ban = false;
                }
                SelectItem item = new SelectItem(preevento.getPreCodigo(), preevento.getPreNombreCorto());
                selects[cont++] = item;
            }
            return selects;
        } catch (Exception e) {
            System.out.println("Ingreso Error: " + e.getMessage());
            SelectItem[] selects = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen eventos");
            selects[0] = item;
            return selects;
        }
    }

    public SelectItem[] getComboEventos() {
        try {
            System.out.println("Ingreso 1");
            SelectItem[] selects = null;
            PreEventoDelegate delegadoPreevento = new PreEventoDelegate();
            List<Preevento> listaEvento = delegadoPreevento.listaEventosConCurso();

            selects = new SelectItem[listaEvento.size()];
            int cont = 0;
            boolean ban = true;
            for (Preevento preevento : listaEvento) {
                if (ban) {
                    preevento.setNroCaracteres(35);
                    ban = false;
                }
                SelectItem item = new SelectItem(preevento.getPreCodigo(), preevento.getPreNombreCorto());
                selects[cont++] = item;
            }
            return selects;
        } catch (Exception e) {
            System.out.println("Ingreso Error: " + e.getMessage());
            SelectItem[] selects = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen eventos");
            selects[0] = item;
            return selects;
        }
    }

    public SelectItem[] getComboEventosSinCurso() {
        try {
            System.out.println("Ingreso 1");
            SelectItem[] selects = null;
            PreEventoDelegate delegadoPreevento = new PreEventoDelegate();
            List<Preevento> listaEvento = delegadoPreevento.listaEventosSinCurso();
            selects = new SelectItem[listaEvento.size()];
            int cont = 0;
            boolean ban = true;
            for (Preevento preevento : listaEvento) {
                if (ban) {
                    preevento.setNroCaracteres(35);
                    ban = false;
                }
                SelectItem item = new SelectItem(preevento.getPreCodigo(), preevento.getPreNombreCorto());
                selects[cont++] = item;
            }
            return selects;
        } catch (Exception e) {
            System.out.println("Ingreso Error: " + e.getMessage());
            SelectItem[] selects = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen eventos");
            selects[0] = item;
            return selects;
        }
    }

    public SelectItem[] getComboEventosConCurso() {
        try {
            System.out.println("Ingreso 1");
            SelectItem[] selects = null;
            PreEventoDelegate delegadoPreevento = new PreEventoDelegate();
            List<Preevento> listaEvento = delegadoPreevento.listaEventosConCurso();
            selects = new SelectItem[listaEvento.size()];
            int cont = 0;
            boolean ban = true;
            for (Preevento preevento : listaEvento) {
                if (ban) {
                    preevento.setNroCaracteres(35);
                    ban = false;
                }
                SelectItem item = new SelectItem(preevento.getPreCodigo(), preevento.getPreNombreCorto());
                selects[cont++] = item;
            }
            return selects;
        } catch (Exception e) {
            System.out.println("Ingreso Error: " + e.getMessage());
            SelectItem[] selects = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen eventos");
            selects[0] = item;
            return selects;
        }
    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }
}
